#!/bin/bash

rm -rvf db转sql工具.zip

# 检查依赖的源文件是否存在
if [ ! -f "sqlite3.c" ] || [ ! -f "miniz.c" ] || [ ! -f "$1" ]; then
    echo "缺少必要的源文件 (sqlite3.c, miniz.c, sqlz.cpp)"
    exit 1
fi

# 编译 sqlite3.c 成为 sqlite3.o
echo "正在编译 sqlite3.c ..."
gcc -c sqlite3.c -o sqlite3.o
if [ $? -ne 0 ]; then
    echo "编译 sqlite3.c 失败"
    exit 1
fi

# 编译 miniz.c 成为 miniz.o
echo "正在编译 miniz.c ..."
gcc -c miniz.c -o miniz.o
if [ $? -ne 0 ]; then
    echo "编译 miniz.c 失败"
    exit 1
fi

# 链接所有文件，生成最终的二进制文件 start
echo "正在链接生成可执行文件 sqlz ..."
g++ -o build/sqlz $1 sqlite3.o miniz.o -lpthread -lstdc++
if [ $? -ne 0 ]; then
    echo "链接失败，生成可执行文件失败"
    exit 1
fi

# 完成编译
echo "编译成功，生成了可执行文件 start"
echo "正在压缩文件中...."
zip -r db转sql工具.zip build/sqlz
echo "压缩成功，已经输出到 db转sql工具.zip"

rm -rvf sqlz sqlite3.o miniz.o